دسته بندی ها
12:42 1399/07/11

تبدیل کاراکترهای عربی به فارسی در سی شارپ | تبدیل کاراکتر "ی" به "ی" در WPF

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : WPF سی شارپ Sql Server Entity Framework

به این سوال امتیاز بدهید    2
تعداد بازدید این سوال : 5961
پاسخ دهنده : fateme 14:19 1399/07/11

تبدیل حروف عربی به فارسی در WPF

دستوراتی که برای تبدیل حروف عربی به فارسی در ویندوز فرم نوشتید درسته. اما توی WPF کمی برخی از دستورات تغییر کردن. شما میتونید کدهای زیر رو جایگزین کدهای خودتون کنید.

 

private void txt_name_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key.ToString() == "ي")
    {
         e.Key.ToString("ی");
     }
}

 

دقت کنید که در WPF در EventHandler با نام e به جای keychar باید از key استفاده کنید.

ضمنا توی دیتابیس هم Collation رو حتما Persian قرار بدید. اگر شما Collation دیتابیس خودتون رو فارسی قرار بدید این مشکل خودش حل میشه.

ویرایش شده در جمعه 11 مهر 1399 ساعت 14:19:39
به این پاسخ امتیاز بدهید    2
امتیاز: 1617 رتبه: 2
6 نظر
mojtabahakimian : سپاس از وقتی که گذاشتید .

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 02:48 1399/07/11
mojtabahakimian : ولی این دستور کار نمیکنه

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 04:00 1399/07/11
mojtabahakimian : چرا وارد بلوک میشه ولی نمیاد کاراکتری رو که وارد کردم اصلاح کنه ("ي" => "ی")

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 05:34 1399/07/11
mojtabahakimian : یعنی این کد شما فقط میاد میگه چه کلیدی رو روی صفحه کلید زده , محتوای کلید وارد شده رو نمیگه مثل عکس بالا من ی رو تایپ کردم ولی اون میگه شما کلید D رو روی صفحه کلید زدی

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 05:37 1399/07/11
fateme : البته پاسخ من بیشتر برای رفع اشکال شما در متد KeyDown بود چون در سوال شما از این متد در WPF نتونسته بودید به درستی استفاده کنید.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 01:18 1399/07/12
fateme : یعنی وارد بلوک if نمیشه ؟

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 04:02 1399/07/11
ادامه نظرات ...
پاسخ دهنده : mojtabahakimian 01:39 1399/07/12

مشکل حل نـشد 

ببخشید ببینید این کد نمیاد کاراکتر وارد شده رو تبدیل کنه فقط میاد کلیدی که روی صفحه کلید وارد شده رو میگه : ↓

نمونه کدی که توی ویندوز فرم نوشتم درسته ولی توی WPF نمیدونم چجوری این کار رو انجام بدم 

لطفا راهنمایی بفرمایید

به این پاسخ امتیاز بدهید    0
امتیاز: 155 رتبه: 10
پاسخ دهنده : saedbfd 02:01 1399/07/12

در WPF مثل Windows Form شما نمیتونید مقدار کلیدی که فشرده شده رو دریافت کنید و روش تغییراتی رو انجام بدید. به نظرم تنظیمات ویندوز رو Persian کنید تا این مشکل پیش نیاد. ضمنا اگر Collation دیتابیس شما Persian باشه هم مشکلی پیش نمیاد. ضمنا توی دیتابیس میشه با یه دستور خیلی ساده همه "ي" را به "ی" تبدیل کرد.

 

ولی در هر صورت میتونید برای انجام این کار توی WPF این لینک رو مطالعه کنید. تقریبا بهترین منبع برای کار شما همین لینک هست.

موفق باشید

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
پاسخ دهنده : mojtabahakimian 02:25 1399/07/12

متشکرم جناب مهندس

ولی اکثر مشتریان اصلا حوصله انجام دادن هیچ تنظیمی روی سیستمشون ندارن 

تغییر کارکتر ها بعد از ذخیره شدن شون توی دیتابیس دردسر سازه 

هیچ راهی هست که بشه مثل ویندوز فرم کاراکتر ها رو از صفحه کلید گرفت ، فرض کنید میخوایم برنامه کیبورد مجازی ویندوز رو توی WPF بنویسیم 

🙏

به این پاسخ امتیاز بدهید    0
امتیاز: 155 رتبه: 10
2 نظر
mojtabahakimian : لطف میکنید این مورد خیلی مهمه چون دیدم اکثر نرم افزار ها این اشکال رو دارن مخصوصا نرم افزار های حسابداری

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 10:40 1399/07/13
saedbfd : فعلا راهکاری ندارم. ولی یادداشت میکنم مورد شما رو به پاسخی رسیدم همینجا حتما جواب میدم.

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 01:26 1399/07/12
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود